package com.leetcode.LC;

import java.util.HashMap;
import java.util.Map;

public class LC653 {
    Map<Integer, Integer> map = new HashMap<>();
    public boolean findTarget(TreeNode root, int k) {

        if (root == null) {
            return false;
        }
        qinaxuDigui(root);

        for (Integer integer : map.keySet()) {
            if (k - integer==integer) {
                if (map.get(integer)>1){
                    return true;
                }
                return false;
            } else if (map.containsKey(k - integer)) {
                return true;
            }
        }

        return false;

    }

    // 用递归的方法进行先序遍历
    public void qinaxuDigui(TreeNode treeNode) {
        if (map.containsKey(treeNode.val)){
            map.put(treeNode.val,map.get(treeNode.val)+1);
        }else {
            map.put(treeNode.val,1);
        }
        if (treeNode.left != null) {
            qinaxuDigui(treeNode.left);
        }
        if (treeNode.right != null) {
            qinaxuDigui(treeNode.right);
        }
    }
}
